Device, System and Method of Handling User Requests

ABSTRACT

Devices, systems and methods of handling user requests. For example, a method includes: receiving an electronic representation of a submitted request; calculating request-related information, submitter-related information, and/or recipient-related information; based on the request-related information and the submitter-related information, determining one or more recipients for the request; distributing the request to said one or more recipients; and storing the request and one or more responses received from said one or more recipients.

FIELD OF THE INVENTION

The present invention relates to the field of information technology(IT). More specifically, the present invention relates to devices,systems and methods for handling requests and questions submitted byusers.

BACKGROUND OF THE INVENTION

Numerous electronic databases and resources, for example, World Wide Websites and pages, files and documents stored on various types of Internetservers in various formats, chat room conversations, and the like, mayinclude significant amount of useful information. Due to the largeamount of information available electronically, it may be difficult andtime consuming to retrieve an answer to a specific question or requestpresented by a user. In addition, requested information may not bedocumented or otherwise available online.

SUMMARY OF THE INVENTION

Some embodiments of the invention may include, for example, systems andmethods to match and distribute a set of requests from people to a setof resources potentially able to fulfill these requests, taking intoaccount multiple inputs including the relevancy of the resource to therequest using an algorithm that calculates the semantic relationshipbetween pairs in a group of objects, and attempting to maximize theamount of valuable knowledge exchanged between groups of people.

Some embodiments of the invention may include, for example, adistribution system used in conjunction with the matching system, and/ora relevancy calculation mechanism used by the matching system.

Some embodiments of the invention may provide additional and/or otheradvantages or benefits, as will be apparent from the description below.

BRIEF DESCRIPTION OF THE DRAWINGS

The principles and operation of the system, apparatus, and methodaccording to the present invention may be better understood withreference to the drawings, and the following description, it beingunderstood that these drawings are given for illustrative purposes onlyand are not meant to be limiting, wherein:

FIG. 1 is a schematic block diagram of a demonstrative architecture of asystem for handling requests in accordance with some embodiments of theinvention;

FIG. 2 is a flow-chart of a method of handling requests in accordancewith some embodiments of the invention;

FIG. 3 is a schematic block diagram of architecture of a systemutilizing an algorithm applied to matching questions with people, inaccordance with some embodiments of the invention;

FIG. 4 is a schematic block diagram illustration of a representation ofa person profile in accordance with some embodiments of the invention;

FIG. 5 is a schematic block diagram illustration demonstratinggeneration of a person's semantic cloud in accordance with someembodiments of the invention; and

FIG. 6 is a schematic flow-chart of a method of relevancy calculation inaccordance with some embodiments of the invention.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numerals may be repeated among the figures toindicate corresponding or analogous elements throughout the serialviews.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the presentinvention. However, it will be understood by those skilled in the artthat the present invention may be practiced without these specificdetails. In other instances, well-known methods, procedures, andcomponents have not been described in detail so as not to obscure thepresent invention.

Some embodiments of the invention may include, for example, systems andmethods to match and distribute a set of requests from people to a setof resources potentially able to fulfill these requests, taking intoaccount multiple inputs including the relevancy of the resource to therequest using an algorithm that calculates the semantic relationshipbetween pairs in a group of objects, and attempting to maximize theamount of valuable knowledge exchanged between groups of people.

Some embodiments of the invention may include, for example, adistribution system used in conjunction with the matching system, and/ora relevancy calculation mechanism used by the matching system.

Some embodiments of the invention may include, for example, adistribution component used in an internet-based service which maycreate a full-service, user-centric web experience. Some embodiments maycreate a full-service user-centric web experience, reducing the time andeffort to value associated with searching for information, knowledge,goods and/or services.

In some embodiments, users provide their request(s) to the servicethrough one or more routes or electronic venues, such as web browserclient, email, SMS, instant messaging client, web service, voice, or thelike. The request may be a request for knowledge, fact, recommendation,information, opinion, services and/or goods. The request may besubmitted in one or more formats, for example, free text, rich media(text and images, audio, video, audio/video, animation, and othernon-textual media), structured request (a form corresponding to apredefined structure), or the like.

In some embodiments, the system creates a dynamic, dedicated weblocation (which may be referred to herein as “blog”) for each request.The blog contains the request, responses to this request, comments onthese responses, and other information sources relevant to the requestand the responses. A response may include, for example, free text, richmedia, a structured response, or the like.

In some embodiments, the service may provide the user highly relevantqualified response(s) in minimum response-time. In some embodiments,those responses are retrieved mainly from the network users. Someembodiments may thus proactively address (or otherwise send or route)the question to the most relevant available user(s). In someembodiments, substantially in parallel, the system queues the request.The system continuously analyses the requests in the queue. The systemmay take into account multiple inputs, for example, the request, thecategories and topics it is associated with, the set of entities (usersand systems such as search engines and e-commerce sites) that may beable to provide a useful relevant response for this request,availability of these entities, their track record or performancehistory, capacity to handle a number of requests, user satisfaction, andother inputs. Based on these inputs and/or their analysis, the systemdecides who to distribute the request to, when to distribute, and inwhat manner, such that the overall consumption of the resourcesavailable for the system for providing responses to current and futurerequests in used in an optimal or efficient manner. The system continuesto monitor and evaluate responses to the request, and if needed,modifies the distribution policy and queues the request again forprocessing or re-processing.

In some embodiments, users may be notified of responses to theirquestions, of relevant requests that they may be able to fulfill, and ofother relevant events. The notification mechanism may be configured bythe user(s), for example, notification through the web client userinterface, instant messaging, email, SMS, voice prompt, RSS/Atom, webservice, phone, mobile phone, wireless devices, or other electronicnotification mechanisms.

In some embodiments, a Distribution Algorithm may determine the optimalpolicy for distributing requests to users, for example, by optimizingthe usage of the resources available to a capacity-limited system, e.g.,in order to fulfill one or more goals per each request, with thedistribution system responsible for implementing the determined policy.The goals may include, for example: minimum time to fulfill a request;maximum relevancy of each response; optimize response cost; and/or othergoals. In some embodiments, a user making a request may set orprioritize goals of the request. In some embodiments, some goals may attimes be conflicting. Therefore, the system balances them, for example,by attempting to reach optimal usage of the system's Request FulfillmentPotential over a period of time.

In some embodiments, the algorithm utilizes a learning system, whichcontinuously profiles the user(s) and the system, and continuouslyadjusts the factors it uses based on the observed behavior of thesystem, and attempts to re-affirm and discover knowledge on the systemand the users in a continuous basis and in a methodic manner.

FIG. 1 is a schematic block diagram of a demonstrative architecture of asystem for handling requests in accordance with some embodiments of theinvention. A queue 110 may be, for example, a time-based delta queueholding all active requests (Q1 to Qn). The timestamps attached to eachqueued request indicate when the policy regarding this request should bere-examined.

One or more instances 120 may be associated with a distribution policyalgorithm. For example, Instance <1> to Instance <m> may be multipleinstances of the distribution policy algorithm, each one able to handlea single request at a time. The algorithm may use functions describedherein as “Inputs”, represented in FIG. 1 as f1 to fi, for example, todetermine the optimal manner to handle a given request at a given time.

A communication manager 130 represents, for example, a link to asubsystem for executing the policy determined by the algorithm withregards to selectively routing the request to one or more recipients.

In some embodiments, the policy determined by the algorithm may fulfilltwo primary goals: minimum time to fulfill a request; and maximumrelevancy of each response. Since these goals may at times beconflicting, the system balances them by attempting to reach optimalusage of the system's Request Fulfillment Potential over a period oftime.

In some embodiments, in deciding how to route the request, the algorithmtakes into account a series of inputs related to the request and thetopics associated with it, the requesting user, past and projectedsystem status (incoming requests rate, or the like) and informationabout potential providers of responses. These inputs are furtherdescribed herein.

The inputs may have various effects on the algorithm policy. In someembodiments, for example, more requests may be routed to a respondinguser if the user is more available, if the user's history of responsesis ranked higher or more recent, if the user's motivation is higher, ifthere is less information on this user (e.g., the user capabilities arenot fully known yet), and/or if other conditions are met. In contrast,fewer requests may be routed to a responding user if the user cost ishigher, if the user quota of questions per period is small orapproaching exhaustion, if the user interaction frequency is low, or thelike. Other suitable conditions or criteria may be used.

FIG. 2 is a flow chart of a method of handling requests in accordancewith some embodiments of the invention. As shown in FIG. 2, a requestinguser submits a request (block 205); the system updates a database withthe request (block 210); the system categorizes the request (block 215);the system suggest previously created responses for the request (block220).

A check may be performed of whether the user is satisfied: if the useris satisfied, the process may end (block 230); if the user is notsatisfied, the process may proceed (blocks 235 and onward).

The system creates a request-specific blog (block 235); the systemprovides the blog address to the user (block 240); the system queues therequest (block 245); later, the system de-queues the request (block250); request-related information and/or submitter-related informationmay be retrieved and/or calculated (block 255).

A check may be performed (block 260) of whether the user is satisfied(e.g., with the results presented based on the information collected upto and including block 255). If the user is satisfied, then the requestmay be finalized (block 265), for example, considered or indicated as“fulfilled”). If the user is not satisfied, then the process may proceedwith the operations of block 270 and onward.

Potentially-relevant subset of nodes may be calculated (block 270);optimal nodes to which the request is sent to may be calculated (block272); the request may be sent to the selected nodes (block 274), forexample, using a communication manager. The database may be updated withinformation about sent requests (block 280), and/or with informationabout received responses (block 285). The request may be queued forlater re-inspection (block 290), and some of the above operations may berepeated, e.g., the operations of block 250 and onward.

In some embodiments, one or more functions may represent inputs that areavailable to the algorithm in its decision process. These functionsprovide information related to past and present data, and to futuresettings and extrapolations.

Table 1 demonstrates general functions and their respective operation,in accordance with some embodiments of the invention:

TABLE 1 Function: Operation: all_users( ) List of all usersall_users_except_req(req) All users to which this request was notdelivered yet channels_all( ) Returns the list of all communicationknown channels channel_speed(channel) The channel relative speed (1 =slowest, e.g., web; 10 = fastest, e.g., SMS) res_per_req_factor(topic)The desired responses per request factor for the specified topicprojected_load_topics(req) The project number of incoming questions perday on the request topics req_topics(req) The topics that the request isassociated with

Table 2 demonstrates user-specific functions and their respectiveoperations, in accordance with some embodiments of the invention:

TABLE 2 Function: Operation: user_topics(user) The list of topics inwhich the user can provide knowledge or proposalsuser_topic_quota_num(user, topic) The maximum num of requests that theuser user agrees to receive in the topic topic during the periodspecified by the function user_topic_quota_period_days( ).user_topic_quota_period_days The period of time in days related to the(user, topic) result of the function user_topic_quota_nums( )user_topic_quota_available Number of requests that can send to this user(user, topic, period_days) in the future period (specified in days)user_ranking_avg(user) The user average rankinguser_ranking_topic_avg(user, topic) The user average ranking for thespecified topic user_cost_month(user) The user cost on a scale of 1-10,with 1 being “free” and 10 being on an expensive payroll.user_motivation(user) Theoretic motivation (the relative extent of theuse drive and obligation toward a known answering ratio) on a scale of1-10 user_must_answer_quota If the user has a quota he must meet, whatis (user, period_hours) the quota for the specified period in hoursuser_requests_delivered How many requests were delivered to this (user,period_days) user during the last few days (specified by period_days).user_requests_answered How many requests were provided with (user,period_days) answers by the specified user in the specified perioduser_questions_answered_topic How many requests were provided with(user, topic, period_days) answers by the specified user in thespecified period in the specified topic user_avg_avail_channel Returnsthe user's average availability for the (user, channel, datetime)specified channel at the specified date-time given historicalinformation. Availability is on a scale of 1-10. 1 = usually notavailable at this time; 10 = usually available at this time.user_curr_avail_channel Returns the user's current availability. (user,channel) 1 = not available or unknown; 10 = available.user_competitiveness Returns: 1 if user tends to answer more when no oneelse answered, 3 if user tends to answer more when there are alreadyposted answers or comments, 2 if no clear pattern.

In some embodiments, inputs used by the system may include, for example:list of users to whom to distribute the requests, and channels to usewhen distributing to each one of them (input for the communicationmanager); time to wait before checking the request status again (deltaused for the queue); command to move the request into a finalized state;and/or other suitable inputs.

In some embodiments, the system may interact with other systems, or maybe used in conjunction with other systems, for example: a system fortagging users in a way that describes their knowledge and interestsbased on self tagging and on automatic tagging through a learningsystem; a system for discovering tacit knowledge and transforming itinto electronic media; a method for transforming a request in a naturallanguage into an electronic format that captures the rest details andthe expected response structure; a format for representation of requestsfor proposals and proposals that is expandable and supports evolution bycommunity; a business method enabling electronic pro-active offering ofa limited quantity of goods to a selected group of relevant people(e.g., the traveling sales man); a ranking system for evaluating therelative value of a user based on a learning system and on other usersfeedback; a method for selecting an appropriate content source based onthe topics associated with a request and performing a focused search onthe source in order to highlight relevant content; and/or other systems.

Some embodiments of the invention may include, for example, a RelevancyCalculation algorithm designed to calculate the semantic relationshipbetween pairs in a group of objects with semantic context.

For example, given a group of object pairs {Pn}={(Oi Oj)}, the algorithmoutput may be a match level number between Oi and Oj.

The input may be, for example:

-   -   P1=(Oi Oj)    -   . . .    -   Pn=(Om On)

The output may be, for example:

-   -   P1:M1    -   P2:M2    -   . . .    -   P3:M3

Mn may represent the strength of the semantic relationship between thefirst item and the second item in the corresponding pair.

The calculation is performed after utilizing additional informationsources such as anthologies and lexical databases, which are used todiscover, evaluate, disambiguate and expand the semantic cloudassociated with the objects.

The objects on which this algorithm is used may be person profiles,questions, answers, requests, responses, commercial products, serviceoffering, web content, or other content.

For a person profile, the algorithm may employ a learning system, whichcontinuously updates the persons profiles based on various elements suchas the questions they ask, the answers they provide, their averageresponse-time, the rank they got from the users, information generatedabout them in other systems (internal or external), and information theyprovide directly, such as categorization of their knowledge, tagging oftheir knowledge, and links to other systems. This results in apersonalization of various operations such as suggesting topics forasked questions. Upon registration, the user may be requested to fillout a form or questionnaire in order to provide initial informationabout the user, including, for example, areas of knowledge, education,hobbies, etc. The questionnaire may include predefined categories and/orallow for free text.

For each individual pair, the result for a specific run may be the sameregardless of the number of questions submitted in this run. However,resource utilization (CPU, database, etc.) may be lower for a batchedrun (multiple questions) then the sum of resource utilization formultiple single-question runs.

FIG. 3 is a schematic block diagram of architecture of a systemutilizing an algorithm applied to matching questions with people, inaccordance with some embodiments of the invention.

As shown in FIG. 3, a user 301 may submit a text question 302, which maybe handled using one or more inter-connected components, for example, ataxonomies database 303, a people profiles database 304, ascraping-generated semantic clouds database 305, a question tagssuggestion generator 306 (e.g., to produce suggested tags which may berevised by the user 301), a person semantic cloud generator 308, agenerator 309 to generate a question semantic cloud 310, a peopleprofiles generator 311, a learning mechanism 312, a web semantic cloudsgenerator 313, a generator 314 to generate a person/question match rank(e.g., to generate a match rank per person 315), a distribution system316, and/or other suitable units.

A semantic cloud may be, for example, a directed graph data structure,in which: all vertices are reachable from a single known root vertex;each vertex is associated with a textual keyword (tag); each edge (linkbetween vertices) is associated with a numeric weight; and each vertexis associated with a numeric relevance factor.

The root vertex represents the object with which the semantic cloud isassociated. All other vertices represent phrases (one word or more). Thenumeric weight represents the strength of the connection between the twovertices.

The relevance factor represents the relevance of the phrase associatedwith a specific vertex, to the root vertex, and is calculated as afunction of all weights of all edges in all routes from the root vertexto the specific vertex, factored by the edge distance from the root.

A semantic cloud may be used to represent the list of phrases related toa specific object (e.g., person, question, or the like), the strength ofthe relationship (relevancy to the object), and the relationship betweenthe phrases themselves.

In some embodiments, a semantic cloud “surrounds” (or is associatedwith) a specific object with widening circles of associations. Thefarther the association is from the object, the less relevant it is tothe object.

In some embodiments, semantic clouds may be used to discover thestrength of a relationship between two objects. The strength of therelationship, or the relevancy of one object to another, is representedby the amount and strength of the overlapping or correlation of theirtwo semantic clouds.

Semantic clouds may be created, by integrating and traversinginformation collected from multiple sources such as web content fromcontents sites, shopping sites, forums, social services, expertsexchanges and others, flat or hierarchical taxonomies, informationprovided by the user, online presences maintained by the user, objects(bookmarks, photographs, people and other objects) maintained or taggedby the user online or offline, lexical databases such as wordnet,documents provided by the user, and/or from additional sources.

The question tags suggestion generator 306 may receive as input: thetext of a question, the person profile for the user that asked thequestion, and the accompanying user-agnostic semantic databases. Thequestion tags suggestion generator 306 may generate a list of suggestedtags or keywords for this question. In some embodiments, the tags aregenerated by: generating a semantic cloud for the question text usingthe provided inputs; collecting the top X elements with the highestrelevance factor, where X is a configurable number determined by userinterface requirements.

The question semantic cloud generator 309 receives as input: the text ofa question, the person profile for the user that asked the question, andthe accompanying user-agnostic semantic databases. The question semanticcloud generator 309 generates a semantic cloud for this question.

The people profiles database 304 may include person's profiles. A personprofile may be, for example, a collection of information related to aspecific person, which is used as source data for the generation of asemantic cloud for this person.

In some embodiments, the profile may include, for example: user-providedinformation which categorize (through tags, keywords, selection fromflat or hierarchical taxonomies, pointing to external systems in whichthis information exists, or other means) the user's knowledge; onlinerepresentations of the user's interest through web sites such as socialtagging or bookmarking services, photo sharing services, and others;description of the user's expertise such as the user's resume, online oroffline; previously asked questions by this user; previously answeredquestions by this user, including ranks he received from other users;profiling information collected by the system on the behavioral patternsof this person, such as time of day or week the user is most likely toanswer questions, the user's competitiveness, etc; opinions, comments,reviews, chats and other forms of user presence; the type, topic andamount per time period of questions that the user agrees to receive;and/or other data.

The person semantic cloud generator 308 may receive as input a personprofile, and may generate a semantic cloud for this person.

The web semantic cloud generator 313 may scan existing web contentsources, such as content sites, forums, blogs, etc, to create an overallsemantic cloud that describes the relationship between common phrases(tags) based on their real usage. The web semantic cloud generator 313may operate, for example, by periodically downloading content from thecontents sources, performing lexical and/or semantic analysis of thedownloaded content, and creating semantic clouds based on theoccurrences of certain phrases in the text, while cross-referencing themwith existing tag clouds. The web semantic cloud generator 313 storesthe generated tag clouds in persistent storage for later reuse.

The system may utilize an object relevancy generator, which may receiveas input two objects (such as a person profile and question text), andmay generate a semantic cloud based on the person profile, a secondsemantic cloud based on the question text and the optional tags providedby the user (which serve as second-level roots in the tag cloud), andmay perform a calculation to determine the overlap or correlation levelbetween these two tag clouds, using a vector-distance calculation,treating each one of them as a multi-dimensional vector. The result isfactored appropriately and returned by the generator as the RelevancyRank for a specific two objects (e.g., person-question) pair.

The distribution system 316 determines the optimal policy fordistributing requests to users, by optimizing the usage of the resourcesavailable to the system, in order to fulfill the following goals pereach request: minimum time to fulfill a request; and maximum relevancyof each response. Since these goals may at times be conflicting, thesystem balances them by attempting to reach optimal usage of thesystem's Request Fulfillment Potential over a period of time.

The system utilizes the learning mechanism 312 to continuously adjustthe factors it uses based on the observed behavior of the system, andattempts to re-affirm and discover knowledge on the system and the userson a continuous basis in a methodic manner.

The learning mechanism 312 may suggest personalized adjustments to theperson's semantic cloud based on accumulated user profile information,such as asked questions, provided answers, actual ranking of providedanswers, rejection or acceptance of questions, and other factual andbehavioral information.

The result of the matching algorithm is an input for the distributionsystem 316 but is not necessarily the only input, as the system may takeinto account additional multiple parameters such as the user'savailability, track record, ranking, usage patterns, behavioralpatterns, extrapolation on the system behavior, and others.

FIG. 4 is a schematic block diagram illustration of a representation ofa person profile 400 in accordance with some embodiments of theinvention. Information about a person 410, or information associatedwith or related to person 410, may be obtained or determined from orusing user-provided tags 421, accumulated behavioral patterns 422,information about the user from enterprise systems 423, previously askedquestions 431, previously provided answers and/or ranking 432, and/oruser online presence and user-provided information 440, for example,user's blogs 441, user's online resumes 442, user's online taggedobjects (e.g., bookmarks, pictures, etc.), user reviews, opinions,comments and chats 444, and/or other suitable information.

FIG. 5 is a schematic block diagram illustration demonstratinggeneration of a person's semantic cloud 510 in accordance with someembodiments of the invention. As shown in FIG. 5, the person's semanticcloud 510 may be generated by a person semantic cloud builder 520 basedon one or more inputs, for example, a person profile 531, onlinedirectories 532 (e.g., DMOZ directories or open directories), lexicalreference systems 533 (e.g., WordNet), taxonomies 534, and/or additionalinformation sources 535.

FIG. 6 is a schematic flow-chart of a method of relevancy calculation inaccordance with some embodiments of the invention. Based on a receivedquestion text (block 605) and a received (or generated) user profile(block 610), suggested tags may be generated (block 620). The suggestedtags (block 625) may be presented to user's approval, thereby generatinguser-approved tags (block 630), which may be used to generate questionsemantic cloud (block 640). The question semantic cloud (block 645) maybe used, in conjunction with information from a users database (block660) to generate a person/question match rank (block 650), therebyproducing the match rank per person (block 670).

EXAMPLE 1

In a first demonstrative example presented herein, some embodiments ofthe invention may handle a request of a user looking for knowledge.

Kim is an art student. She needs to submit a paper by the end of theweek, and to complete it, she needs to find examples of works bycontemporary artists dealing with “modern man's bafflement whenconfronted with a flood of online information”.

Kim submits her request for knowledge to the system using a web client(though she may submit it using an instant messenger client, SMS, voice,email, or any of the other forms mentioned earlier).

The system prompts Kim to validate and/or modify the request categories.Then, the system performs a search in its internal database as well asin external data sources, trying to find an existing, relevant responseto Kim's request. If such potential responses are found, they arepresented to Kim.

The system creates a dynamic blog dedicated to Kim's request andprovides Kim with the URL for this blog. The blog contains Kim'srequest, information about Kim and about the request (such as therequest category, status and other metadata), link to more informationabout Kim, and any response or discussion received so far on thisrequest.

In addition, the system displays in the blog additional informationabout the request which is retrieved from other internal and externalsystem, as well as potentially information relevant to businesspartnerships or advertisement.

The actual request is stored in the system database and is queued forlater, asynchronous processing.

Asynchronously, the system dequeues the request from the queue, anddetermines a policy for handling of this request. The system determinesthat for this specific request category (modern art, contemporaryartists) there are 300 registered users who may be able to provide arelevant response.

The system determines that from these users, the user Joe, age 47, fromOregon, receives an average high ranking in these categories, but isable to answer only 1 question a week. The system further determinesthat the user Jim, age 32, from Japan, usually receives a somewhat lowerranking then Joe, but usually answers about 30 percent of the requestsdirected to him. The system further determines that the user Ann, age42, from Chicago, is registered as knowledgeable about these categories,but so far no requests were sent to Ann, even though Ann should be ableto answer 2 questions a day.

Joe and Ann allowed the system to send questions through InstantMessaging, while Jim agreed to receive notifications by email.

The system determines that given the fact that the request was submitteda short time ago (shorter than a configurable time period), that Joe iscurrently unavailable through his instant messaging client, and that theresponse time Kim experienced in average in the past with the system waswell above the average one, it may be determined to distribute thisquestion to Jim instead of Joe, and that this is a good opportunity tocheck if Ann's knowledge in this area is useful. Jim receives anotification by email, and Ann receives an instant message notifying herof the request. The instant message is sent by a special messenger “bot”or virtual user that was approved by Ann and/or was added to her instantmessenger contacts list when she joined the service.

In addition, the system queues the request for later re-inspection ofits status and re-calculation of the policy based on its new status.

Ann opens the instant message, quickly scans the request, and finds thatshe actually knows of several such examples. She types in the messengerwindow the artists' names and their relevant works. For one of them, shedoes not recall the work name, so she uses a standard search engine tolook it up. In less then a minute she finishes typing the response andhits the Send button.

The system receives Ann's instant message through its integration withthe instant messaging network. The system stores Ann's response in thedatabase, updates the request blog, and sends a notification throughinstant message to Kim, notifying her that a response to her request wasreceived.

Kim receives the link to the blog in the instant message, clicks the URLand opens the blog. As she reads the blog, Jim finds the notification inhis email, reads the request, and also provides a response by replyingto the email. The blog is dynamically updated with Jim's response.

Next to Jim and Ann's replies there is a tag line, indicating theirranking, certification and custom text and/or graphics that they added,advertising their private blog or company web site, and helping Kimestimate how much she can trust their response.

Unfortunately, while very useful, Yim and Ann responses togetherprovided only 5 examples, and Kim needs 3 more. Therefore, she decidesto leave the request open, hoping for more responses.

The system dequeues the request again, and notices that the 3notifications it sent generated 2 responses, which were useful, but therequest is still open.

The system inspects the 300 potentially-relevant registered users again.This time, it decides that the question has been open for a long time,so it is important to try to close it and therefore it does send anotification to Joe, and to 2 additional users with high rankings andhigh availability. In addition, it sends the request to 3 more users whohave declared ability to provide response in this area, but have nohistory of responses to judge their ranking by.

These notifications generate 3 hours later two additional responses. Kimis now satisfied with the responses she received, and decides to closethe request. Kim indicates this intent to the system, and also decideswhich participants in the blog are awarded incentives (such as points,money, or other incentives) and how much.

In this demonstrative example, Kim's request for knowledge wasfulfilled; users who provides useful responses to Kim's request wereawarded; the entire discussion is archived for later re-use; and thedatabase is updated with information about Kim's request, her behavioralpatterns, the responding users response and their behavioral patterns.

EXAMPLE 2

In a second demonstrative example presented herein, some embodiments ofthe invention may handle a request of a user looking for services and/orgoods.

Kim graduated from her studies and opened her own small business, atravel agency organizing tours of contemporary artists' hideaways. Asher business grows, three employees join her team, and she realizes itis time to provide them all with business cards. Kim goes back to theservice and enters her request: “I would like to buy business cards formy small business”. This scenario may be a superset of the scenario ofExample 1.

Kim submits her request for knowledge to the system using a web client(though she could also have submitted it using an instant messengerclient, SMS, voice, email, or any of the other forms mentioned earlier).

The system prompts Kim to validate and/or modify the request categories.Then, the system performs a search in its internal database as well asin external data sources, trying to find an existing, relevant responseto Kim's request. If such potential responses are found, they arepresented to Kim.

The system creates a dynamic blog dedicated to Kim's request andprovides Kim with the URL for this blog. The blog contains Kim'srequest, information about Kim and about the request (such as therequest category, status and other metadata), link to more informationabout Kim, and any response or discussion received so far on thisrequest.

In addition, the system displays in the blog additional informationabout the request which is retrieved from other internal and externalsystem, as well as potentially information relevant to businesspartnerships or advertisement.

In addition, the system searches its list of BizForms, which are a formof light-weight requests-for-proposals (RFPs) designed to handle acommunity-driven RFP definition system for a dynamic list of topics, forexchange of RFPs between consumers to consumers, businesses toconsumers, or businesses to businesses. The system finds 3 BizFormswhich may be applicable to a request for business cards and presents Kimwith the option to choose one of them, fill it with more informationabout her request for proposal, so that the system can send the RFP torelevant potential providers (merchants or other users), which will inturn potentially provide Kim with proposals for this service.

The actual request is stored in the system database and is queued forlater, asynchronous processing.

If a BizForm is selected, the system presents Kim with the BizForm userinterface, asking her to provide the details of her RFP, such asone-sided or two-sided business cards, in color or black and white, andother easy-to-fill parameters. If Kim is not sure what would be the bestway to define her request, because she does not know if two-sided,bilingual business cards have any importance in her region, she cansubmit this as a request for knowledge similar to the process describedabove in Example 1. Her request will be distributed and responses to herrequest will be added to the blog in the same manner as describedearlier.

Once Kim fills and submits the BizForm, the BizForm is saved in thedatabase using an extendable, decentralized XML format. The request andits accompanying XML are then distributed to all relevant users(merchants and others), as determined by the distribution algorithm.

Recipients receive the request either using the notifications mechanismdescribed earlier, or through a dedicated interface designed to handlelarge quantities of ecommerce-related bizforms and interaction withecommerce systems.

Recipients provide their proposals to the system using a matchingformat, whose elements correspond to the elements of the requestBizForm. Each such response is posted to the blog, allowing Kim tofilter, sort and evaluate these responses, and to solicit request forknowledge on all proposals or on individual proposals.

Each proposal is accompanied by the user's ranking and certification, aswell as a tagline advertising the user.

After Kim reviews the proposals she receives and understand them usingknowledge requests, Kim may choose one of the proposals, and allow themerchant to contact her directly to finalize the transaction.Potentially they may choose to perform the payment through the system'ssupport of electronic payment mechanisms (such as PayPal, credit cards,or other payment methods).

In this demonstrative example, Kim's request for proposals wasfulfilled; users who provides useful responses to Kim's request wereawarded; the entire discussion is archived for later re-use; thedatabase is updated with information about Kim's request, her behavioralpatterns, the responding users response and their behavioral patterns;the transaction is completed.

EXAMPLE 3

In a third demonstrative example presented herein, some embodiments ofthe invention may handle a request of a user looking for information.

Jim is an engineer and a do-it-yourself (DIY) hobbyist. He maintains anactive blog describing his experiences with DIY projects, and a separateblog describing his insights related to engineering.

Jim also has an account on del.icio.us, a social tagging and bookmarkingweb-site, with many bookmarks on DIY-related web pages. Jim maintainshis resume (CV) online using the LinkedIn service, and his vacationpictures tagged in the photo-sharing web-site Flickr.

Jim has an account on the system. Jim provided his various onlinepresence to the system —his blogs, social tagging and/or bookmarking,CV, photo sharing, etc. Jim also tagged himself with the following tags:Do-It-Yourself, Mechanical Engineering, Noise Reduction.

Based on the inputs that Jim provided, the system creates a semanticcloud for Jim's profile. This semantic cloud contains all the tagsderived from the original tags that Jim specified, combined with tagsderived from the online presence points he provided, and expanded toinclude information from additional semantic databases. The result ofthis process is a semantic cloud of tags with weights, that describesthe topics that Jim had knowledge about and their relevance to him.

Jim would like to build a tree house for his children, but he is notsure which tools he needs for this task. Specifically, he is not surewhich saw would be best to cut through plywood.

Jim submits a question to the system with the following text: “I wouldlike to a build a tree house; I am looking for a good, cheap andreliable circular saw able to cut through plywood. Any recommendationsor insights?”

The system analyses Jim's question. It performs a lexical analysis onthe question text, extracting the first level tags. It then creates asemantic cloud for the question, using Jim's personal semantic cloud asadditional input.

Then, the system extracts the five top relevant tags from the semanticclouds and suggests to Jim to tag his question with: Tree House;Circular Saw; Plywood; Do It Yourself; and Need Recommendation.

Jim accepts these tags, and adds: Wood Work; and Home Improvement

The system regenerates a semantic cloud for the question, with thefollowing changes: Jim's personal profile is now not taken into account;and Jim's final list of tags is added as an input for the algorithm.

The system uses the semantic cloud to search through the database, andpresents to Jim a list of possible relevant resources, includingpreviously asked similar questions, relevant blogs, relevant users, andrelevant content from selected external resources, such as books fromonline books vendors, articles from online content sites, etc.

Jim browses through these resources, but decides he would like to postthe question to the system network.

The system uses the question semantic cloud to find the questions matchto users in the database, using the described semantic cloud, and thenactivates the distribution mechanism to determine the best distributionpolicy with the calculated match between the questions and users as aninput.

The system then contacts the selected users through the appropriatemechanism such as instant messaging, email, RSS or web, and invites themto answer Jim's question. The system continues this distribution processuntil Jim indicates that he received the answer he needed. The systemcontinuously adjusts the distribution policy based on the patterns itobserves, such as users' answers, availability, and other parameters.

Some embodiments of the invention may utilize a computer or a computingdevice to perform one or more of the described operations. The computermay include, for example, a processor, a memory unit, a storage unit, aninput unit (e.g., mouse, keyboard, keypad, microphone, or the like), anoutput unit (e.g., monitor, screen, speakers, printer, or the like), acommunication unit (e.g., wired modem, wireless modem, network card, anantenna, or the like), and/or other suitable components.

The foregoing description and examples of the embodiments of theinvention have been presented for the purposes of illustration anddescription. They are not intended to be exhaustive or to limit theinvention to the precise form disclosed. It should be appreciated bypersons skilled in the art that many modifications, variations,substitutions, changes, and equivalents are possible in light of theabove teaching. It is, therefore, to be understood that the appendedclaims are intended to cover all such modifications and changes as fallwithin the true spirit of the invention.

1-22. (canceled)
 23. A computer-implemented method, comprising:receiving a request submitted by a submitter; generating a semanticrepresentation of the request, said semantic representation comprising aplurality of tags, and comprising data values representing degrees ofrelevance of said tags to the request; comparing the semanticrepresentation of the request to respective semantic representations ofeach of a plurality of users who can potentially respond to the request;and based at least in part on a result of said comparison, selecting,from said plurality of users, at least one user to whom to route therequest.
 24. The method of claim 23, wherein the request is a questionto which the submitter is seeking an answer.
 25. The method of claim 23,wherein the semantic representation of each of the plurality of userscomprises a set of tags reflective of topics associated with therespective user, and comprises data values representing degrees ofrelevance of said tags to the respective user.
 26. The method of claim23, wherein the step of comparing comprises determining a correlationlevel between the semantic representation of the request and therespective semantic representation of each of the plurality of users.27. The method of claim 23, wherein the step of comparing comprisesusing a vector-distance calculation in which each of the semanticrepresentations is treated as a multi-dimensional vector.
 28. The methodof claim 23, further comprising using the semantic representation of therequest to automatically match the request to at least one prioruser-submitted request for which a response is available, and makingsaid response available to the submitter.
 29. The method of claim 23,wherein generating the semantic representation of the request comprisestaking profile information of the submitter into consideration ingenerating the semantic representation of the request, said profileinformation being distinct from the request.
 30. The method of claim 23,further comprising using a semantic representation of the submitter togenerate the semantic representation of the request, said semanticrepresentation of the submitter including tags derived from a userprofile of the submitter.
 31. The method of claim 23, wherein generatingthe semantic representation of the request comprises generating asemantic cloud representation of the request.
 32. The method of claim31, wherein the semantic cloud representation comprises weighted linksbetween specific tags, said weighted links representing degrees ofassociation between specific tags.
 33. The method of claim 23, whereingenerating the semantic representation of the request comprisesgenerating a set of suggested tags for the request, and outputting theset of suggested tags to the submitter.
 34. The method of claim 33,further comprising providing a user option for the submitter to do atleast one of the following: (a) accept the set of suggested tags; (b)submit a modified set of tags for the request.
 35. The method of claim23, wherein selecting at least one user to whom to route the requestcomprises, for at least a first user of said plurality of users, takinginto consideration how many requests have been routed to the first userover a selected period of time.
 36. The method of claim 23, whereinselecting at least one user to whom to route the request comprises, forat least a first user of said plurality of user, taking intoconsideration both (a) an average response time of the first user, and(b) an average response time experienced by the submitter in the past.37. The method of claim 23, wherein selecting a user to whom to routethe request comprises, for at least a first user of said plurality ofusers, taking into consideration whether the first user is currentlyonline.
 38. The method of claim 23, wherein selecting at least one userto whom to route the request comprises, for at least a first user ofsaid plurality of users, taking into consideration whether the firstuser is currently available to receive the request via an instantmessaging client.
 39. The method of claim 23, further comprisingautomatically creating a blog for said question and user responsesthereto.
 40. A system for matching user-submitted requests to usersqualified to respond to such requests, the system comprising: agenerator that receives a request submitted by a submitter and generatesa semantic representation of the request, the semantic representationcomprising a plurality of tags, and comprising data values representingdegrees of relevance of said tags to the request; a matching system thatcompares the semantic representation of the request to respectivesemantic representations of each of a plurality of users who canpotentially respond to the request; and a request distribution systemthat selects one or more particular users to which to send the requestbased at least on part on an output of the matching system.
 41. Thesystem of claim 40, wherein the semantic representation of each of theplurality of users comprises a set of tags reflective of topicsassociated with the respective user, and comprises data valuesrepresenting degrees of relevance of said tags to the respective user42. The system of claim 40, wherein the matching system determines acorrelation level between the semantic representation of the request andthe respective semantic representation of each of the plurality ofusers.
 43. The system of claim 40, wherein the matching system performsa vector-distance calculation in which each of the semanticrepresentations is treated as a multi-dimensional vector.
 44. The systemof claim 40, further comprising a component that uses the semanticrepresentation of the request to automatically match the request to atleast one prior user-submitted request for which a response isavailable.
 45. The system of claim 40, wherein the generator takes userprofile information of the submitter into consideration in generatingthe semantic representation of the request, said profile informationbeing separate from the request.
 46. The system of claim 40, wherein thegenerator takes into consideration a semantic representation of thesubmitter in generating the semantic representation of the request, saidsemantic representation of the submitter including tags derived from auser profile of the submitter.
 47. The system of claim 40, wherein thegenerator generates a semantic cloud representation of the request, thesemantic cloud representation comprising weighted links between specifictags, said weighted links representing degrees to which specific tagsare related.
 48. The system of claim 40, further comprising a tagssuggestion generator that generates a set of suggested tags for therequest, and outputting the set of suggested tags to the submitter. 49.The system of claim 40, wherein the request distribution system, inselecting one or more particular users to which to send the request,takes into consideration how many requests have been routed to saidusers over a period of time.
 50. The system of claim 40, wherein therequest distribution system, in selecting one or more particular usersto which to send the request, takes into consideration (a) averageresponse times of the candidate recipients of the requests, and (b) anaverage response time previously experienced by the submitter.
 51. Thesystem of claim 40, wherein the request distribution system, inselecting one or more particular users to which to send the request,takes into consideration whether particular candidate users arecurrently online.
 52. The system of claim 40, wherein the requestdistribution system, in selecting one or more particular users to whichto send the request, takes into consideration whether particularcandidate users are currently available to receive the request via aninstant messaging client.
 53. A system, comprising: computer storage;and executable code represented in said computer storage, saidexecutable code embodying a method that comprises: receiving anelectronic representation of a user-submitted request; generating arequest semantic cloud associated with said request; calculating a matchranking between the request semantic cloud and a profile associated witha potential recipient of the request; and determining, based at leastpartly on the match ranking, whether to send the user-submitted requestto the potential recipient.
 54. The system of claim 53, wherein therequest semantic cloud includes a plurality of tags, and includes datavalues representing degrees of relevance of particular ones of said tagsto the user-submitted request.
 55. The system of claim 53, whereingenerating the request semantic cloud comprises incorporatinginformation about a submitter of the request into the request semanticcloud, said information about the submitter being distinct from theuser-submitted request.
 56. A computer-implemented method, comprising:receiving user profile information of a user; generating a semanticrepresentation of the user based, at least in part, on the user profileinformation, said semantic representation comprising a plurality oftags, and comprising data values representing degrees of relevance ofparticular tags of said plurality of tags to the user; and matchinguser-submitted requests for information to said user based, at least inpart, on the semantic representation of the user and semanticrepresentations of the user-submitted requests for information, saiduser-submitted requests for information submitted by other users. 57.The method of claim 56, wherein at least some of the user-submittedrequests for information are user-submitted questions.
 58. The method ofclaim 56, further comprising updating the semantic representation of theuser based on responses of said user to at least some of theuser-submitted requests.
 59. The method of claim 56, wherein the methodis performed by a network-accessible system, and the method comprisesusing user profile information provided to the system by the user, incombination with user information extracted by said system from at leastone external source identified to the system by the user, to generatethe semantic representation of the user.
 60. The method of claim 59,wherein the at least one external source comprises at least one of thefollowing: (a) a blog of the user, (b) a profile of the user on a socialnetworking site.
 61. The method of claim 59, wherein the at least oneexternal source comprises an external bookmarking site with which theuser has an account, and the method comprises using bookmarks created bythe user on the bookmarking site to generate the semanticrepresentation.
 62. The method of claim 59, wherein the semanticrepresentation of the user is additionally based on at least one of thefollowing: (a) information requests submitted to the system by the user,(b) responses provided by the user to information requests matched bythe system to said user.
 63. The method of claim 56, wherein the methodcomprises obtaining information about the user from a network-accessibleinformation source that is external to a system that performs saidmethod, and using said information to generate the semanticrepresentation of the user.
 64. The method of claim 63, wherein thenetwork-accessible information source comprises a web site that isexternal to, and distinct from, said system, and the method comprisesscraping data from said web site.
 65. The method of claim 64, whereinthe web site is a social networking site on which the user maintains aprofile.
 66. The method of claim 56, wherein generating the semanticrepresentation of the user comprises generating a semantic cloudrepresentation of the user.
 67. The method of claim 66, wherein thesemantic cloud representation comprises weighted links between specifictags, said weighted links representing relationships between specifictags.
 68. The method of claim 56, wherein generating the semanticrepresentation of the user comprises generating an initial set of tagsthat includes both tags supplied by the user and tags derived from atleast one source of information about the user, and using data regardingsemantic relationships between tags to augment the initial set of tags.69. The method of claim 56, wherein matching the user-submitted requestsfor information to the user comprises comparing semantic representationsof said requests to the semantic representation of the user.
 70. Themethod of claim 56, wherein matching the user-submitted requests to theuser comprises taking into consideration an online presence of the user.71. A system for automatically matching user-submitted requests forinformation to users capable of responding to such requests forinformation, the system comprising: a person semantic representationgenerator that generates a semantic representation of a user based, atleast in part, on user profile information associated with the user,said semantic representation comprising a plurality of tags, andcomprising data values representing degrees of relevance of particulartags of said plurality of tags to the user; and a matching system thatmatches user-submitted requests for information to said user based, atleast in part, on the semantic representation of the user and semanticrepresentations of the user-submitted requests for information, saiduser-submitted requests for information submitted by other users. 72.The system of claim 71, wherein the user-submitted requests forinformation comprise user-submitted questions.
 73. The system of claim71, wherein the person semantic representation generator updates thesemantic representation of the user based on responses of said user touser-submitted requests to which the user responds.
 74. The system ofclaim 71, wherein the person semantic representation generator uses userprofile information provided to by the user, in combination with userinformation extracted from at least one external source identified bythe user, to generate the semantic representation of the user.
 75. Thesystem of claim 74, wherein the at least one external source comprisesat least one of the following: (a) an external blog of the user, (b) aprofile of the user on an external social networking site.
 76. Thesystem of claim 74, wherein the at least one external source comprisesan external bookmarking site with which the user has an account, and themethod comprises using bookmarks created by the user on the bookmarkingsite to generate the semantic representation.
 77. The system of claim74, wherein the person semantic representation generator generates thesemantic representation of the user based additionally on at least oneof the following: (a) information requests submitted to the system bythe user, (b) responses provided by the user to information requestsmatched by the system to said user.
 78. The system of claim 71, whereinthe person semantic representation generator obtains information aboutthe user from a network-accessible information source that is externalto said system, and incorporates said information into the semanticrepresentation of the user.
 79. The system of claim 78, wherein thenetwork-accessible information source comprises a web site that isexternal to, and distinct from, said system.
 80. The system of claim 79,wherein the web site is a social networking site on which the usermaintains a profile.
 81. The system of claim 71, wherein the personsemantic representation generator generates a semantic cloudrepresentation of the user, said semantic cloud representationcomprising weighted links between specific tags, said weighted linksrepresenting relationships between specific tags.
 82. The system ofclaim 71, wherein the person semantic representation generator generatesan initial set of tags that includes both tags supplied by the user andtags derived from at least one source of information about the user, anduses data regarding semantic relationships between tags to augment theinitial set of tags.
 83. The system of claim 71, wherein the matchingsystem uses a vector-distance calculation to compare semanticrepresentations of said requests to the semantic representation of theuser.
 84. A computer-implemented method, comprising: receiving a requestsubmitted by a submitter; selecting, from a set of users registered torespond to requests, a subset of users whose profiles correspond to therequest, said subset of users comprising a plurality of users; androuting the request to one or more users in said subset of usersaccording to a policy that takes into consideration an incoming requestrate, and which further takes into consideration capacities of the usersto respond to incoming requests.
 85. The method of claim 84, whereinrouting the request comprises taking into consideration degrees to whichthe profiles of the users are relevant to the request.
 86. The method ofclaim 85, further comprising performing a semantic analysis of saidrequest and of profiles of the subset of users to assess said degrees towhich the profiles of the users are relevant to the request.
 87. Themethod of claim 84, wherein routing the request comprises taking intoconsideration, for at least a first user in the subset of users, anextent to which the first user has satisfied a response quota for acurrent time period.
 88. The method of claim 84, wherein routing therequest comprises taking into consideration, for at least a first userin the subset of users, how many requests have been sent to the firstuser during a selected time interval.
 89. The method of claim 84,wherein routing the request comprises taking into consideration, for atleast a first user in the subset of users, how many requests areoutstanding for the first user.
 90. The method of claim 84, whereinrouting the request comprises taking into consideration online presencestatuses of particular users in said subset of users.
 91. The method ofclaim 84, wherein routing the request comprises, for at least a firstuser in the subset of users, determining whether the first user iscurrently available to receive the request via an instant messagingsystem.
 92. The method of claim 84, wherein the policy seeks to optimizeusage of response fulfillment resources over a period of time.
 93. Acomputing platform programmed to perform the method of claim
 84. 94. Asystem comprising: computer storage; and executable code represented insaid computer storage, said executable code embodying a method thatcomprises: receiving a request submitted by a submitter; selecting, froma set of users registered to respond to requests, a subset of userswhose profiles correspond to the request, said subset of userscomprising a plurality of users; and routing the request to one or moreusers in said subset of users according to a policy that takes intoconsideration information regarding at least (a) an incoming requestrate, and (b) capacities of the users to respond to incoming requests.95. The system of claim 94, wherein the method embodied in theexecutable code takes into consideration degrees to which the profilesof the users are relevant to the request.
 96. The system of claim 94,wherein the method embodied in the executable code further comprisesperforming a semantic analysis of said request and of profiles of thesubset of users to assess said degrees to which the profiles of theusers are relevant to the request.
 97. The system of claim 94, whereinrouting the request comprises taking into consideration, for at least afirst user in the subset of users, an extent to which the first user hassatisfied a response quota for a current time period.
 98. The system ofclaim 94, wherein routing the request comprises taking intoconsideration, for at least a first user in the subset of users, howmany requests have been sent to the first user during a selected timeinterval.
 99. The system of claim 94, wherein routing the requestcomprises taking into consideration, for at least a first user in thesubset of users, how many requests are outstanding for the first user.100. The system of claim 94, wherein routing the request comprisestaking into consideration online presence statuses of particular usersin said subset of users.
 101. The system of claim 94, wherein routingthe request comprises, for at least a first user in the subset of users,determining whether the first user is currently available to receive therequest via an instant messaging system.
 102. The system of claim 94,wherein the policy seeks to optimize usage of response fulfillmentresources over a period of time.